<template>
  <Viewer :value="value" :plugins="plugins" />
</template>

<script setup lang="ts">
import gfm from "@bytemd/plugin-gfm";
import highlight from "@bytemd/plugin-highlight";
import { Viewer } from "@bytemd/vue-next";
import { defineProps, withDefaults } from "vue";

const plugins = [
  gfm(),
  highlight(),
  // Add more plugins here
];

/**
 * 定义组件属性类型
 * 目标： 我们要把md 的编辑器来的编辑值 value 和 handleChange 等给调用者去控制，
 * 父组件 -> 传递值给mdEditor 子组件显示，父组件也好拿到自己的值
 */
// const value = ref("");
// const handleChange = (v: string) => {
//   value.value = v;
// };

/**
 * 定义组件属性类型
 */
interface Props {
  value: string;
}

/**
 * 给组件指定初始值
 * 组件的值和事件实现逻辑交给父组件来实现
 */
const props = withDefaults(defineProps<Props>(), {
  value: () => "",
});
</script>

<style>
/**
隐藏编辑器中不需要的操作图标（比如 GitHub 图标）：
 */
.bytemd-toolbar-icon.bytemd-tippy.bytemd-tippy-right:last-child {
  display: none;
}
</style>
